package com.demo.common.constant.api.base;

import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;


/**
 * 泛型 T 由子接口去声明
 * @Author: Amayer
 * @CreateTime: 2022-10-10 14:24
 */
public interface BaseService<T, K> {

    //查询所有
    List<T> findAll();

    //根据Id查询
    T findById(K id);

    //多条件查询
    List<T> findByParams(Map<String, String> map);

    //查询总共有多少条记录
    int findAllCount();

    //分页查询
    PageInfo<T> findPage(Map<String, String> map, Integer pageNum, Integer pageSize);

    //增加
    boolean add(T entity);


    //修改
    boolean modify(T entity);

    //多条件修改
    boolean modifyByParams(T entity);

    //删除
    boolean remove(K id);


    //根据id批量删除
    boolean batchRemove(List<K> ids);

    //根据多个条件删除
    boolean removeByParams(Map<String, String> map);
}
